imperative-symbolic co-execution
Terra: Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs
Imperative programming allows users to implement their deep neural networks (DNNs) easily and has become an essential part of recent deep learning (DL) frameworks. Recently, several systems have been proposed to combine the usability of imperative programming with the optimized performance of symbolic graph execution. Such systems convert imperative Python DL programs to optimized symbolic graphs and execute them.
Supplementary Material for Paper " Terra: Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs " A Criteria for Node Equality When Merging Traces
TraceGraph, it compares the type, attributes, and the executed location of each operation. For example, the MatMul operation of TensorFlow has ' MatMul ' as GraphGenerator fails to match because of the different attributes. The pushed call id is popped when the function is returned. As same as the call id stack, Terra manages the loop id stack for the entire program execution. Current implementation of Terra does not consider multi-threading yet.
Terra: Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs
Imperative programming allows users to implement their deep neural networks (DNNs) easily and has become an essential part of recent deep learning (DL) frameworks. Recently, several systems have been proposed to combine the usability of imperative programming with the optimized performance of symbolic graph execution. Such systems convert imperative Python DL programs to optimized symbolic graphs and execute them. For example, if an imperative DL program contains a Python feature with no corresponding symbolic representation (e.g., third-party library calls or unsupported dynamic control flows) they fail to execute the program. To overcome this limitation, we propose Terra, an imperative-symbolic co-execution system that can handle any imperative DL programs while achieving the optimized performance of symbolic graph execution.
Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs
The rapid evolution of deep neural networks (DNNs) has been fueled by the support of deep learning (DL) frameworks like TensorFlow and PyTorch. DL frameworks allow users to build and execute DNNs through Python programming. The standard execution model in DL frameworks is imperative execution: the Python Interpreter executes a DL program just as it treats a regular Python program. Let us go over a simple DL program to grasp the concept. Here, we assume that the condition the Interpreter first evaluates is True.